﻿<?php
require_once 'application/controllers/admin.php';

class AdminActivities extends Admin{
	
	public function __constructor()
	{
		parent::__construct();
	}
	
	public function index(){
		$this->activities();
	}
	
	######################################################
	#		Администраторски дел за активности			 #
	######################################################
	
	//Функција која прикажува копче за додавање нова активност
	//и табела за менување на постоечките активности или бришење на активност
	public function activities(){
		$user = $this->userCheck('activities','admin/main');
		$this->load->helper('form');
		$this->load->model('activities_model');
	
		$data['title'] = 'ФИНКИ - Администратор - Активности';
		$data['include']="admin/adminContent";
		$data['content'] = 'adminActivities/activities';
		$data['navbar'] = 'admin/main';
		$data['role'] = $user->role;
		$data['acts'] = $this->activities_model->getAll();
		
		$this->load->view('masterPage', $data);
	
	}
	
	//Функција која генерира страна за додавање на активност
	public function addActivities(){
		$user = $this->userCheck('activities','admin/main');
	
		$this->load->helper('form');
	
		$data['title'] = 'ФИНКИ - Администратор - Додади активност';
		$data['include']="admin/adminContent";
		$data['content'] = 'adminActivities/addActivities';
		$data['navbar'] = 'admin/main';
		$data['role'] = $user->role;
	
		$this->load->view('masterPage', $data);
	}
	
	//Функција која генерира страна за менување на активност
	public function editActivities($id){
		$user = $this->userCheck('activities','admin/main');
	
		$this->load->helper('form');
		$this->load->model('activities_model');
	
		$data['title'] = 'ФИНКИ - Администратор - Промени активност';
		$data['include']="admin/adminContent";
		$data['content'] = 'adminActivities/editActivities';
		$data['navbar'] = 'admin/main';
		$data['act'] = $this->activities_model->getBy(array('idActPk' => $id));
		$data['role'] = $user->role;
	
		$this->load->view('masterPage', $data);
	}
	
	//Функција која брише активност
	public function deleteActivities(){
		$user = $this->userCheck('activities','admin/main');
		
		
		$this->load->model('activities_model');
		
		$acts = $this->activities_model->getAll();
		
		foreach($acts as $act)
			if($this->input->post($act->idActPk)!=null)
				$this->activities_model->delete(array('idActPk'=>$act->idActPk));
		
		redirect('adminActivities/activities','refresh');
	}
	
	
	
	//Функција која прима податоци (преку post) за додавање или менување на активност.
	//Пронаоѓа дали треба да додаде или промени активност преку post('tip')
	public function processActivities($id=null){
		$user = $this->userCheck('activities','admin/main');
	
		if(!$this->input->post('submit'))
			redirect('admin/main','refresh');
	
		$this->load->library('form_validation');
		$this->load->model('activities_model');
		$this->load->model('upload_model');
	
		$this->form_validation->set_rules('title', 'title', 'required|xss');
		$this->form_validation->set_rules('content', 'content', 'required|xss');
		$this->form_validation->set_rules('dateFrom', 'Од датум','callback_date_check');
		$this->form_validation->set_rules('dateТо', 'До датум','callback_date_check');
	
		$title = $this->input->post('title', TRUE);
		$language = $this->input->post('lang', TRUE);
		$content = $this->input->post('content', TRUE);
		$type = $this->input->post('tip', TRUE);
		$dateFrom = date("Y-m-d", strtotime($this->input->post('dateFrom', TRUE)));
		$dateTo = date("Y-m-d", strtotime($this->input->post('dateTo', TRUE)));
	
		//Доколку не помине валидацијата, пренесува на страна за грешка
		if ($this->form_validation->run() == FALSE)
		{
			redirect('error','refresh');
		}
	
		$data = array('title' => $title,
				'content' => $content,
				'language' => $language,
				'dateFrom' => $dateFrom,
				'dateTo' => $dateTo,
				'dateAdded' => date('Y-m-d'),
				'idUsrFk' => $user->idUserPk
		);
	
		switch ($type){
			case 1:
				$this->activities_model->insert($data);
				break;
			case 2:
				$this->activities_model->update(array('idActPk' => $id),$data);
				break;
		}
	
		redirect('adminActivities/activities','refresh');
	}
	
	//Функција за валидација на датум
	public function date_check($str)
	{
		$strArr = explode("/",$str);
		if (preg_match("/(?P<d>\d{2})(?P<sep>\D)(?P<m>\d{2})\2(?P<y>\d{4})/", $str))
		{
			$this->form_validation->set_message('date_check', 'Полето %s не е точно внесено');
			return FALSE;
		}
		else
		{
			return TRUE;
		}
	}
}